使用 Activity 切换动画时 A->B,A黑屏的解决方法

2015-07-14 15:11

作者:给立乐*
出处:http://spencer-dev.com/2015/07/14/使用 Activity 切换动画时 A->B , A黑屏的解决方法
声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。

平时在开发过程中 会有这样的一个需求,就是 A Activity -> B Activity 要求有一个过场动画。

这里就用到了 overridePendingTransition(); 。这个 Api 的用法很简单,再不济从网上搜一下就能找到。

但是!使用 overridePendingTransition(R.anim.in, R.anim.out); 做过场动画时可能会出现一个问题, B Activity 出现的时候,A Activity 是黑屏的,看起来非常丑。

这个问题的解决办法为:在style中添加一句
<item name="android:windowIsTranslucent">true</item>

将这个 Style 设置给 Application 或者 全部的 Activity ,也可以设置成单独某 Activity 的,将 Activity 变成透明的。

这样就解决了。

注意
要为 Activity 主题添加 android:windowIsTranslucent 才能达到 Activity 透明效果。

后来发现使用此属性之后 Activity 的生命周期有影响,Activity A 启动之后,启动 Activity B,Activity A 的onStop不会被调用。


Comments: